// 网络连接测试工具
export const NetworkTest = {
  // 测试API连接
  async testApiConnection() {
    try {
      const result = await uni.request({
        url: 'http://localhost:8080/api/health',
        method: 'GET',
        timeout: 10000
      });
      
      console.log('🌐 API连接测试:', result);
      return {
        success: result[1].statusCode === 200,
        data: result[1]
      };
    } catch (error) {
      console.error('🌐 API连接失败:', error);
      return {
        success: false,
        error
      };
    }
  },
  
  // 测试文件下载
  async testFileDownload(fileUrl) {
    try {
      console.log('📥 测试文件下载:', fileUrl);
      
      const result = await uni.downloadFile({
        url: fileUrl,
        timeout: 30000
      });
      
      console.log('📥 下载测试结果:', result);
      return {
        success: result[1].statusCode === 200,
        data: result[1]
      };
    } catch (error) {
      console.error('📥 文件下载测试失败:', error);
      return {
        success: false,
        error
      };
    }
  },
  
  // 测试图片访问
  async testImageAccess(imageUrl) {
    try {
      console.log('🖼️ 测试图片访问:', imageUrl);
      
      const result = await uni.request({
        url: imageUrl,
        method: 'HEAD', // 只获取头信息，不下载内容
        timeout: 10000
      });
      
      console.log('🖼️ 图片访问测试结果:', result);
      return {
        success: result[1].statusCode === 200,
        data: result[1]
      };
    } catch (error) {
      console.error('🖼️ 图片访问测试失败:', error);
      return {
        success: false,
        error
      };
    }
  },
  
  // 综合网络测试
  async runFullTest(imageUrl) {
    console.log('🔍 开始网络连接测试...');
    
    const results = {
      api: await this.testApiConnection(),
      image: await this.testImageAccess(imageUrl),
      download: await this.testFileDownload(imageUrl)
    };
    
    console.log('📋 网络测试结果汇总:', results);
    
    // 生成报告
    const report = {
      allPassed: results.api.success && results.image.success && results.download.success,
      details: results,
      suggestions: []
    };
    
    if (!results.api.success) {
      report.suggestions.push('API服务器连接失败，请检查后端服务是否启动');
    }
    
    if (!results.image.success) {
      report.suggestions.push('图片URL无法访问，请检查图片是否存在');
    }
    
    if (!results.download.success) {
      report.suggestions.push('文件下载失败，可能是小程序网络权限问题');
    }
    
    return report;
  }
}; 